﻿var selectedRowId = { Id: '-1' };
var urlVars;
var ischeckingName = false;

// This method defines column header in grid
function GetColumnNames() {
    return ['', 'Id', 'Tên đăng nhập', 'Email', 'Trạng thái'];
}

// This methods defines layout/sort/format/etc of column gird
function GetColumnModel() {
    return [{
        name: 'checkbox', index: 'checkbox', width: 20, align: "center", editable: true, edittype: "checkbox",
        formatter: 'checkbox', formatoptions: { disabled: false }, sortable: false
    },
        { name: 'Id', index: 'Id', width: 70, hidden: true },
        { name: 'Username', index: 'Username', width: 300, align: "left", sortable: true },
        { name: 'Email', index: 'Email', width: 350, align: "left", sortable: true },
        { name: 'Active', index: 'Active', width: 220, align: "left", sortable: true },


    ];

}


$(document).ready(function () {
    GetCurrentLoginUser(function (data) {
        SetupGrid('#list', "/User/GetUserListForBuildingGrid", GetColumnNames, GetColumnModel, '#listPager',
        'Name', 'text', 'asc', selectedRowId, GetPostData($("#list")), 360, 893, grid_LoadCompleted);
        $("#list").jqGrid('setGridParam', { datatype: 'json' });

    });

    registerEventHandles();

    function GetPostData(list) {

        return {
            sortName: function () { return $(list).jqGrid('getGridParam', 'sortname'); },
            sortOrder: function () {
                return ($(list).jqGrid('getGridParam', 'sortorder'));
            },
            rowId: selectedRowId.Id,

        };
    }


});

function grid_LoadCompleted() {
    handleCheckbox();
    handleControls(0);
}

function handleCheckbox() {
    $("#list input[type='checkbox']").change(function () {
        var selectedItems = getSelectedRows();
        handleControls(selectedItems.length);
    });


}

function handleControls(itemSelectedCount) {
    if (itemSelectedCount > 0) {
        $("#btnDel").removeAttr("disabled");
    }
    else {
        $("#btnDel").attr("disabled", true);
    }
    if (itemSelectedCount != 1) {
        $("#btnActivate").attr("disabled", true);
    }
    else {
        $("#btnActivate").removeAttr("disabled");
        var element = $("#list input[type='checkbox']:checked").parent().parent()
       .find("td[aria-describedby='list_Active']").first().text();
        if (element == "Đang hoạt động") {
            $("#btnActivate").text("Tạm ngưng hoạt động");
        }
        else {
            $("#btnActivate").text("Khôi phục hoạt động");
        }
    }

}

function getSelectedRows() {
    var elements = $("#list input[type='checkbox']:checked").parent().parent()
        .find("td[aria-describedby='list_Id']");

    var selectedIds = [];

    elements.each(function (e) {
        var id = $(this).text();
        selectedIds.push(id);
    });
    return selectedIds;
}

function newUser() {
    GetCurrentLoginUser(function (data) {
        if (!data || !data.Username || data.Username === '')
            window.location.href = '/User/Login';
        if (!data.IsAdmin) {
            window.location.href = '/User/Login';
        }
        $.blockUI();
        $.ajax({
            url: "/User/New",
            data: {},
            contentType: 'text/html',
            dataType: "html",
            type: "get",
            success: function (data) {
                $("#editWindow .modal-body").html(data);
                $('#editWindow .modal-title').html("Thêm User");
                $('#editWindow').modal({ backdrop: false });

                $("#editWindow .modal-dialog").css({ width: 500 });

                $.unblockUI();
            },
            error: function (data) {
                alert("Yêu cầu đăng nhập lại");
                $.unblockUI();
            }
        });

    });   
}

function registerEventHandles() {
    //$("#btnEdit").click(function () {
    //    editCustomer();
    //    function editCustomer() {
    //        var selectedItems = getSelectedRows();
    //        if (selectedItems.length == 0)
    //            return;
    //        var ajaxUrl = "/User/Edit/" + selectedItems[0];

    //        GetCurrentLoginUser(function (data) {
    //            if (!data || !data.Username || data.Username === '')
    //                window.location.href = '/User/Login';

    //            $.blockUI();
    //            $.ajax({
    //                url: ajaxUrl,
    //                data: {},
    //                contentType: 'text/html',
    //                dataType: "html",
    //                type: "get",
    //                success: function (data) {
    //                    $("#editWindow .modal-body").html(data);
    //                    $('#editWindow .modal-title').html("Cập nhật User");
    //                    $('#editWindow').modal({ backdrop: false });
    //                    $("#editWindow .modal-dialog").css({ width: 500 });
    //                    $.unblockUI();
    //                },
    //                error: function (data) {
    //                    alert("Yêu cầu đăng nhập lại");
    //                    $.unblockUI();
    //                }
    //            });

    //        });
    //    }
    //});

    $("#btnDel").click(function () {
        var selectedItems = getSelectedRows();
        if (selectedItems.length == 0) return;
        $("#dialog-confirm").dialog({
            resizable: false,
            height: 160,
            modal: true,
            buttons: {
                "Xóa đi": function () {
                    DoDelete();
                    $(this).dialog("close");
                },
                "Khoan đã": function () {
                    $(this).dialog("close");
                }
            }
        });
        function DoDelete() {
            $.blockUI();
            $.ajax({
                url: "/User/Delete",
                data: JSON.stringify({ deletedIds: selectedItems }),
                contentType: 'application/json',
                dataType: "json",
                type: "POST",
                success: function (data) {
                    $.unblockUI();
                    $("#list").jqGrid('setGridParam', { datatype: 'json' });
                    $('#list').trigger('reloadGrid');
                    if (data.Success) {
                        showMessage("#alertbox", "Đã xóa User");
                    }
                    else {
                        showMessage("#alertbox", "Gặp lỗi khi xóa User", true);
                    }
                },
                error: function (err) {
                    $.unblockUI();
                    showMessage("#alertbox", "Không thể xóa User!", true);
                }
            });
        }
    });

    $("#btnActivate").click(function () {
        var activate = $(this).text() != "Tạm ngưng hoạt động";
        var selectedItems = getSelectedRows();

        $.ajax({
            url: "/User/ActivateOrDeactivateUser?username="+selectedItems[0] + "&activate=" + activate,
            data: {},
            contentType: 'application/json',
            dataType: "json",
            type: "POST",
            success: function (data) {
                $.unblockUI();
                $("#list").jqGrid('setGridParam', { datatype: 'json' });
                $('#list').trigger('reloadGrid');

                showMessage("#alertbox", data.Message, !data.Success);

            },
            error: function (err) {
                $.unblockUI();
                showMessage("#alertbox", "Không thể thực hiện thao tác này", true);
            }
        });
    });
}

function validateEmail(email) {
    var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return re.test(email);
}
